package IU;

import Controladores.CtrlAMBOperario;
import Entidades.Contrato;
import Entidades.Detallecontrato;
import java.util.List;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import utiles.Validador;
import Controladores.CtrlLocalidad;
import Controladores.CtrlPais;
import Controladores.CtrlProveedor;
import Controladores.CtrlProvincia;
import Controladores.CtrlContrato;
import Controladores.CtrlDetallecontrato;
import Controladores.CtrlEstadocontrato;
import Entidades.Estadocontrato;
import Entidades.Estadooperario;
import Entidades.Operario;
import Entidades.Proveedor;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.util.Collection;
import java.util.ArrayList;
import javax.swing.event.ListSelectionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import IU.Iniciar;

/////////////////LISTAR////////////////////
/////////////////LISTAR////////////////////
/**
 *
 * @author  Laura
 * 
 * 
 */
public class BuscarPedidosPendientes extends javax.swing.JFrame {

    String telefono1;
    String telefono2;
    Proveedor proveedor;
    TablaPersonalizada tableModel;
    private List listap;
    CtrlProveedor controladorprovee;
    CtrlPais controladorpais;
    CtrlProvincia controladorprov;
    CtrlLocalidad controladorlocal;
    CtrlContrato controladorcontrato;
    CtrlDetallecontrato controladordetallecontr;
    CtrlEstadocontrato controladorestadocontrato;
    CtrlAMBOperario controladoroperario;
    Proveedor o;
    Operario op;
    Validador validador;
    Collection<Detallecontrato> detalleCollection = new ArrayList<Detallecontrato>();
    Estadooperario miestado = null;
    Estadocontrato e = null;
    Estadocontrato estadocontrato = null;
    String estado = "PENDIENTE";
    Contrato contrato;
    Proveedor miprov = null;
    Iniciar u;
    Principal p;
   // private List<Contrato> listacontpend = new ArrayList<Contrato>();
    private List<Detallecontrato> listadetpend = new ArrayList<Detallecontrato>();
    private List<Contrato> listacontparam = new ArrayList<Contrato>();
    private List<Detallecontrato> listadetparam = new ArrayList<Detallecontrato>();
     private List<Proveedor> listaproveedoresactivos = new ArrayList<Proveedor>();
     String usuarios;
    private List<Detallecontrato> listadetpendiente;
    private CargarRemito datosremito;

   
    public BuscarPedidosPendientes(String usuarios) {
        initComponents();

        controladorprovee = new CtrlProveedor();
        controladordetallecontr = new CtrlDetallecontrato();
        controladorestadocontrato = new CtrlEstadocontrato();
        controladorcontrato = new CtrlContrato();
        controladoroperario = new CtrlAMBOperario();
        jTextFieldUsuario.setText(usuarios);
        this.usuarios = usuarios;
        cargarComboRazon();
        try {
            op = controladoroperario.buscarOperarioApellido(usuarios);
        } catch (Exception ex) {
            Logger.getLogger(BuscarPedidosPendientes.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jLabelApellidoCon = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabelDniCon = new javax.swing.JLabel();
        jLabelTelCon = new javax.swing.JLabel();
        jLabelDireccionCon = new javax.swing.JLabel();
        jTextFieldDireccion = new javax.swing.JTextField();
        jTextFieldCuit = new javax.swing.JTextField();
        jTextFieldNombre = new javax.swing.JTextField();
        jTextFieldApellido = new javax.swing.JTextField();
        jComboBoxRazon = new javax.swing.JComboBox();
        jButtonBuscarCon = new javax.swing.JButton();
        jPanel5 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTablePedidosPendientes = new javax.swing.JTable();
        jButtonSeleccionarPedido = new javax.swing.JButton();
        jButtonSalir = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jTextFieldUsuario = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Pedidos Pendientes ");
        setIconImages(null);

        jTabbedPane1.setForeground(new java.awt.Color(102, 0, 102));
        jTabbedPane1.setFont(new java.awt.Font("Segoe UI", 3, 12));

        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jPanel1.setFont(new java.awt.Font("Tahoma", 3, 12));

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Datos del Proveedor", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N

        jLabelApellidoCon.setFont(new java.awt.Font("Segoe UI", 1, 11));
        jLabelApellidoCon.setText("Razón Social:");

        jLabel7.setFont(new java.awt.Font("Segoe UI", 1, 11));
        jLabel7.setText("Apellido:");

        jLabelDniCon.setFont(new java.awt.Font("Segoe UI", 1, 11));
        jLabelDniCon.setText("Nombre:");

        jLabelTelCon.setFont(new java.awt.Font("Segoe UI", 1, 11));
        jLabelTelCon.setText("Cuit:");

        jLabelDireccionCon.setFont(new java.awt.Font("Segoe UI", 1, 11));
        jLabelDireccionCon.setText("Dirección:");

        jTextFieldDireccion.setEditable(false);
        jTextFieldDireccion.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED, null, new java.awt.Color(240, 240, 240), null, null));

        jTextFieldCuit.setEditable(false);
        jTextFieldCuit.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED, null, new java.awt.Color(240, 240, 240), null, null));

        jTextFieldNombre.setEditable(false);
        jTextFieldNombre.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED, null, new java.awt.Color(240, 240, 240), null, null));

        jTextFieldApellido.setEditable(false);
        jTextFieldApellido.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED, null, new java.awt.Color(240, 240, 240), null, null));

        jComboBoxRazon.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED, null, new java.awt.Color(240, 240, 240), null, null));
        jComboBoxRazon.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBoxRazonActionPerformed(evt);
            }
        });

        jButtonBuscarCon.setFont(new java.awt.Font("Segoe UI", 3, 12));
        jButtonBuscarCon.setForeground(new java.awt.Color(102, 0, 102));
        jButtonBuscarCon.setMnemonic('B');
        jButtonBuscarCon.setText("Buscar");
        jButtonBuscarCon.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonBuscarConActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel7)
                            .addComponent(jLabelApellidoCon)
                            .addComponent(jLabelDniCon)
                            .addComponent(jLabelTelCon))
                        .addGap(32, 32, 32))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabelDireccionCon)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jTextFieldDireccion)
                    .addComponent(jTextFieldCuit)
                    .addComponent(jTextFieldNombre)
                    .addComponent(jTextFieldApellido)
                    .addComponent(jComboBoxRazon, 0, 391, Short.MAX_VALUE))
                .addGap(68, 68, 68)
                .addComponent(jButtonBuscarCon)
                .addGap(88, 88, 88))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jComboBoxRazon, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelApellidoCon)
                    .addComponent(jButtonBuscarCon))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldApellido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelDniCon))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldCuit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelTelCon))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelDireccionCon))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Pedidos Pendientes", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N

        jScrollPane1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
        jScrollPane1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jScrollPane1MouseClicked(evt);
            }
        });

        jTablePedidosPendientes.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nro Contrato", "Nombre Producto", "Cuartel", "Clasificación", "nro Detalle Contrato", "Seleccionado"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Boolean.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, true
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTablePedidosPendientes.setColumnSelectionAllowed(true);
        jTablePedidosPendientes.getTableHeader().setReorderingAllowed(false);
        jTablePedidosPendientes.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTablePedidosPendientesMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jTablePedidosPendientes);
        jTablePedidosPendientes.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

        jButtonSeleccionarPedido.setFont(new java.awt.Font("Segoe UI", 3, 12));
        jButtonSeleccionarPedido.setForeground(new java.awt.Color(102, 0, 102));
        jButtonSeleccionarPedido.setText("Seleccionar Pedido");
        jButtonSeleccionarPedido.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSeleccionarPedidoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 708, Short.MAX_VALUE)
                    .addComponent(jButtonSeleccionarPedido, javax.swing.GroupLayout.Alignment.TRAILING))
                .addContainerGap())
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 36, Short.MAX_VALUE)
                .addComponent(jButtonSeleccionarPedido)
                .addGap(21, 21, 21))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jPanel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(44, 44, 44))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(100, 100, 100))
        );

        jTabbedPane1.addTab(" Pedidos Pendientes", jPanel1);

        jButtonSalir.setFont(new java.awt.Font("Segoe UI", 3, 12));
        jButtonSalir.setForeground(new java.awt.Color(102, 0, 102));
        jButtonSalir.setText("Salir");
        jButtonSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSalirActionPerformed(evt);
            }
        });

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Usuario Registrado", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N
        jPanel2.setForeground(new java.awt.Color(102, 0, 102));

        jTextFieldUsuario.setEditable(false);
        jTextFieldUsuario.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldUsuario, javax.swing.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(28, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 882, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonSalir))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(22, 22, 22)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 391, Short.MAX_VALUE)
                .addComponent(jButtonSalir)
                .addGap(43, 43, 43))
            .addGroup(layout.createSequentialGroup()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 507, Short.MAX_VALUE)
                .addGap(61, 61, 61))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-1216)/2, (screenSize.height-604)/2, 1216, 604);
    }// </editor-fold>//GEN-END:initComponents

    private void refresh() {
//        jTextFieldApellido.setText("");
//        jTextFieldnombre.setText("");
//        jTextFieldrazon.setText("");
//        jTextFieldcuit.setText("");
//        jTextFieldDireccion.setText("");
//        jTextFieldcodigoPostal.setText("");
//        jTextFieldtelefono1.setText("");
//        jTextFieldtelefono2.setText("");
    }

private void jButtonSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSalirActionPerformed
    dispose();
}//GEN-LAST:event_jButtonSalirActionPerformed

    private void actualizarCombo(List lista1) {
        jComboBoxRazon.removeAllItems();
        for (int i = 0; i < lista1.size(); i++) {
            Vector fila = new Vector();
            Proveedor proveedor = (Proveedor) lista1.get(i);
            fila.add(proveedor.getCuitProveedor());
            jComboBoxRazon.addItem(fila.get(0));
        }
    }

    public void actualizarDatos(Proveedor proveedorSel) {
    }
/////

///
      private void cargarTabla(Proveedor prov) {
//este cargar tabla muestra los contratos pendientes del proveedor seleccionado
        DefaultTableModel modelo = (DefaultTableModel) jTablePedidosPendientes.getModel();
        try {
                     listadetpendiente = controladordetallecontr.buscarContratoProvPend(prov);
            System.out.println("tamaño de lista det pend" + listadetpendiente.size());
            if(listadetpendiente.size()==0){
                 JOptionPane.showMessageDialog(this, "No se registran pedidos pendientes del proveedor.\n ", "Buscar Pendientes", JOptionPane.ERROR_MESSAGE);
            }

            for (int i = 0; i < listadetpendiente.size(); i++) {
                Detallecontrato detalle = listadetpendiente.get(i);

                Vector fila = new Vector();
               // Detallecontrato detalle =  listadetpend.get(i);
                fila.add(detalle.getContrato().getNumeroContrato());
                fila.add(detalle.getProducto().getNombreProducto());
                fila.add(detalle.getCuartel());
                fila.add(detalle.getProducto().getClasificacionproducto().getNombreclasificacion());
                fila.add(detalle.getIdDetalleContrato());
                fila.add(false);

                modelo.addRow(fila);
                this.jTablePedidosPendientes.setModel(modelo);
            }
        } catch (Exception e) {
            System.out.println(e);
            System.out.println("no trajo la consulta + tamaño de lista det pend: " + listadetpend.size());
        }
        System.out.println("antes de hacer la consulta");

//        //ESTE ES EL QUE IRÍA CUANDO FUNCIONE LA BUSQUEDA CORRECTAMENTE
//        try {
//            listadetpend = controladordetallecontr.buscarContratoProvPend(proveedor);
//            System.out.println("tamaño de lista det pend" +listadetpend.size());
//            System.out.println("luego de la consulta");
//            for (int i = 0; i < listadetpend.size(); i++) {
//                Vector fila = new Vector();
//                Detallecontrato detalle = (Detallecontrato) listadetpend.get(i);
//                fila.add(detalle.getProducto().getNombreProducto());
//                fila.add(detalle.getProducto().getClasificacionproducto().getNombreclasificacion());
//                fila.add(detalle.getCantidad());
//                fila.add(detalle.getPrecio());
//                fila.add(detalle.getCantidad() * detalle.getPrecio());
//                tableModel.addRow(fila);
//            }
//        } catch (Exception e) {
//            System.out.println(" fallo al hacer la consulta ");
//        }
//  //ESTE ES EL QUE IRÍA CUANDO FUNCIONE LA BUSQUEDA CORRECTAMENTE




//DEVUELVE UNA LISTA DE DETALLES DE CONTRATO PENDIENTES DEL PROVEEDOR SELECCIONADO
//Y LOS CARGA EN LA TABLA:


//        try {
//            System.out.println("buscando los contratos por estado");
//            listapedpend = controladorcontrato.buscarContrato_X_idestado(estadocontrato.getIdestadocontrato());//devuelve muchos
//            System.out.println("tamaño de listapedpend " + listapedpend.size());
//            System.out.println("tipo de listapedpend " + listapedpend.getClass());
//            //Tengo todos los contratos con estado pendiente
//            //Por cada contrato pendiente

        //necesito los contratos que pertenecen al proveedor seleccionado
//            for (int i = 0; i < listapedpend.size(); i++) {
//                System.out.println("paso el for");
//                Object obj = listapedpend.get(i);
//                Contrato con = (Contrato) listapedpend.get(i);

//                System.out.println("paso el for");
//                if (listap.get(i).getIdProveedor().equals(prov.getIdproveedor())) {
//                    System.out.println("paso el for con obj");
//                }
//                if (listapedpend.get(i).getIdProveedor().equals(prov.getIdproveedor())) {
//                    System.out.println("dentro del for");
//              cantidad = Integer.parseInt(modelo.getValueAt(i, 3).toString());
//              cantidad+=Integer.parseInt(tfCant.getText());
//              modelo.setValueAt(cantidad, i, 3);
//              encontro = true;
//              break;
//                System.out.println(listapedpend.get(i));
        //  }
        //  Object obj = new Object();

//                contrat = new Contrato();
//
//                contrat=(Contrato)obj;


//                if (prov.getIdproveedor().equals(contrat.getIdProveedor())) {
//                    listapendprov.add(contrat);
//                    System.out.println("tamaño de listapendprov " + listapendprov.size());
//                }


//            }
//            for(int j=0; j<listapendprov.size();j++){
//                Vector fila = new Vector();
//                Contrato con=(Contrato)listapendprov.get(j);
//                con.getDetallecontratoCollection();
//                System.out.println(  con.getDetallecontratoCollection());
//        }
//

//                System.out.println("inicio del for: " + listapedpend.get(i));
//                Vector fila = new Vector();
//                Contrato con = (Contrato) listapedpend.get(i);
//                fila.add(con.getIdcontrato());
//                // fila.add(con.getIdproducto());
//                // fila.add(det.get);//get cuartel
//                //   fila.add(det.getIdprod);// get variedad
//
//                tableModel.addRow(fila);
//            }
//                Vector filas = new Vector();
//
//                System.out.println("Paso 1 " + listapedpend.get(i));
//
//                Contrato contrat = (Contrato) listapedpend.get(i);
//                System.out.println("cont " + contrat.getFecha());
//                System.out.println("Paso 2");
//
//                listadet = new ArrayList(contrat.getDetallecontratoCollection());
//                System.out.println("Paso 3");
//
//                for (int j = 0; j < listadet.size(); j++) {
//                    System.out.println("Paso 4");

//                    Vector fila = new Vector();
//                    Detallecontrato det = (Detallecontrato) listadet.get(j);
//                    fila.add(det.getIdcontrato());
//                    fila.add(det.getIdproducto());
//                    // fila.add(det.get);//get cuartel
//                    //   fila.add(det.getIdprod);// get variedad
//
//                    tableModel.addRow(fila);
        //}

//            }
//        } catch (Exception e) {
//            System.out.println(e);

    }

        /*
    private void cargarTabla(Proveedor prov) {
//este cargar tabla muestra los contratos pendientes del proveedor seleccionado
        DefaultTableModel modelo = (DefaultTableModel) jTablePedidosPendientes.getModel();
//String[] values = new String[]{"SI", "NO"};
        ///ESTO NO VA ES PARA QUE FUNCIONE PROVISORIAMENTE
        // esto debe hacerse para el detalle de contrato
        // int idproveedor = prov.getIdProveedor();
        try {
            //listadetpend = controladordetallecontr.buscarTodosDetallecontrato();
            listadetpend = controladordetallecontr.buscarContratoProvPend(prov);
            System.out.println("tamaño de lista det pend" + listadetpend.size());
            for (int i = 0; i < listadetpend.size(); i++) {
                Vector fila = new Vector();
                Detallecontrato detalle = (Detallecontrato) listadetpend.get(i);
                fila.add(detalle.getNumeroContrato().getNumeroContrato());
                fila.add(detalle.getIdProducto().getNombreProducto());
                fila.add(detalle.getCuartel());
                fila.add(detalle.getIdProducto().getIdClasificacionProducto().getNombreclasificacion());
                fila.add(detalle.getIdDetalleContrato());
                fila.add(false);

                modelo.addRow(fila);
                this.jTablePedidosPendientes.setModel(modelo);
            }
        } catch (Exception e) {
            System.out.println(e);
            System.out.println("no trajo la consulta + tamaño de lista det pend: " + listadetpend.size());
        }
        System.out.println("antes de hacer la consulta");

//        //ESTE ES EL QUE IRÍA CUANDO FUNCIONE LA BUSQUEDA CORRECTAMENTE
//        try {
//            listadetpend = controladordetallecontr.buscarContratoProvPend(proveedor);
//            System.out.println("tamaño de lista det pend" +listadetpend.size());
//            System.out.println("luego de la consulta");
//            for (int i = 0; i < listadetpend.size(); i++) {
//                Vector fila = new Vector();
//                Detallecontrato detalle = (Detallecontrato) listadetpend.get(i);
//                fila.add(detalle.getProducto().getNombreProducto());
//                fila.add(detalle.getProducto().getClasificacionproducto().getNombreclasificacion());
//                fila.add(detalle.getCantidad());
//                fila.add(detalle.getPrecio());
//                fila.add(detalle.getCantidad() * detalle.getPrecio());
//                tableModel.addRow(fila);
//            }
//        } catch (Exception e) {
//            System.out.println(" fallo al hacer la consulta ");
//        }
//  //ESTE ES EL QUE IRÍA CUANDO FUNCIONE LA BUSQUEDA CORRECTAMENTE




//DEVUELVE UNA LISTA DE DETALLES DE CONTRATO PENDIENTES DEL PROVEEDOR SELECCIONADO
//Y LOS CARGA EN LA TABLA:


//        try {
//            System.out.println("buscando los contratos por estado");
//            listapedpend = controladorcontrato.buscarContrato_X_idestado(estadocontrato.getIdestadocontrato());//devuelve muchos
//            System.out.println("tamaño de listapedpend " + listapedpend.size());
//            System.out.println("tipo de listapedpend " + listapedpend.getClass());
//            //Tengo todos los contratos con estado pendiente
//            //Por cada contrato pendiente

        //necesito los contratos que pertenecen al proveedor seleccionado
//            for (int i = 0; i < listapedpend.size(); i++) {
//                System.out.println("paso el for");
//                Object obj = listapedpend.get(i);
//                Contrato con = (Contrato) listapedpend.get(i);

//                System.out.println("paso el for");
//                if (listap.get(i).getIdProveedor().equals(prov.getIdproveedor())) {
//                    System.out.println("paso el for con obj");
//                }
//                if (listapedpend.get(i).getIdProveedor().equals(prov.getIdproveedor())) {
//                    System.out.println("dentro del for");
//              cantidad = Integer.parseInt(modelo.getValueAt(i, 3).toString());
//              cantidad+=Integer.parseInt(tfCant.getText());
//              modelo.setValueAt(cantidad, i, 3);
//              encontro = true;
//              break;
//                System.out.println(listapedpend.get(i));
        //  }
        //  Object obj = new Object();

//                contrat = new Contrato();
//
//                contrat=(Contrato)obj;


//                if (prov.getIdproveedor().equals(contrat.getIdProveedor())) {
//                    listapendprov.add(contrat);
//                    System.out.println("tamaño de listapendprov " + listapendprov.size());
//                }


//            }
//            for(int j=0; j<listapendprov.size();j++){
//                Vector fila = new Vector();
//                Contrato con=(Contrato)listapendprov.get(j);
//                con.getDetallecontratoCollection();
//                System.out.println(  con.getDetallecontratoCollection());
//        }
//                

//                System.out.println("inicio del for: " + listapedpend.get(i));
//                Vector fila = new Vector();
//                Contrato con = (Contrato) listapedpend.get(i);
//                fila.add(con.getIdcontrato());
//                // fila.add(con.getIdproducto());
//                // fila.add(det.get);//get cuartel
//                //   fila.add(det.getIdprod);// get variedad
//
//                tableModel.addRow(fila);
//            }
//                Vector filas = new Vector();
//                
//                System.out.println("Paso 1 " + listapedpend.get(i));
//
//                Contrato contrat = (Contrato) listapedpend.get(i);
//                System.out.println("cont " + contrat.getFecha());
//                System.out.println("Paso 2");
//
//                listadet = new ArrayList(contrat.getDetallecontratoCollection());
//                System.out.println("Paso 3");
//
//                for (int j = 0; j < listadet.size(); j++) {
//                    System.out.println("Paso 4");

//                    Vector fila = new Vector();
//                    Detallecontrato det = (Detallecontrato) listadet.get(j);
//                    fila.add(det.getIdcontrato());
//                    fila.add(det.getIdproducto());
//                    // fila.add(det.get);//get cuartel
//                    //   fila.add(det.getIdprod);// get variedad
//
//                    tableModel.addRow(fila);
        //}

//            }
//        } catch (Exception e) {
//            System.out.println(e);

    }
*/
    private void limpiarCampos() {
        jTextFieldApellido.setText("");
        jTextFieldNombre.setText("");
        jTextFieldCuit.setText("");
        jTextFieldDireccion.setText("");

    }

    private void cargarComboRazon() {
        try {
            listap = controladorprovee.buscarTodosProveedor();
            System.out.println("tamaño de la lista de proveedores " + listap.size());
        } catch (Exception e) {
        }


        for (int i = 0; i < listap.size(); i++) {
            System.out.println("tamaño proveedores " + listap.size());
            Proveedor proveedor1 = (Proveedor) listap.get(i);

            
            try {
                if (proveedor1.getFechabaja().equals("")) {
                    System.out.println("proveedor1.getFechafin().equals() " + proveedor1.getRazonSocialProveedor());
                    String fecha = proveedor1.getFechabaja();
                    System.out.println("proveedor1.getFechafin()" + fecha);
                    listaproveedoresactivos.add(proveedor1);
                }
            } catch (Exception e) {
                listaproveedoresactivos.add(proveedor1);
                System.out.println("cargó en activo a : "+ proveedor1);
            }
        }
//        System.out.println("listaoperariorolactivos.size() " +listaproveedoresactivos.size());
//        for (int i = 0; i < listaproveedoresactivos.size(); i++) {
//            Proveedor proveedor2 = (Proveedor) listaproveedoresactivos.get(i);


        jComboBoxRazon.removeAllItems();

        for (int i = 0; i < listaproveedoresactivos.size(); i++) {
            Vector fila = new Vector();
            Proveedor prove = (Proveedor) listaproveedoresactivos.get(i);
            fila.add(prove.getRazonSocialProveedor());
            jComboBoxRazon.addItem(fila.get(0));
        }
    }


private void jButtonBuscarConActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonBuscarConActionPerformed
///////////////

    System.out.println("");
    //Proveedor miprov = null;
    Object esteoperar = jComboBoxRazon.getSelectedItem();
    String nombrecuil = esteoperar.toString();
    System.out.println("nombre cuil " + nombrecuil);
    try {
        miprov = controladorprovee.buscarProveedorRazon(nombrecuil);
        System.out.println("mioperar " + miprov);
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, "El proveedor ingresado no se ha encontrado.\n ", "Proveedor", JOptionPane.ERROR_MESSAGE);
    }

    if (miprov != null) {

        jTextFieldNombre.setText(miprov.getNombreProveedor());
        jTextFieldCuit.setText(String.valueOf(miprov.getCuitProveedor()));
        jTextFieldDireccion.setText(miprov.getDireccionProveedor());
        jTextFieldApellido.setText(miprov.getApellidoProveedor());
    }
    cargarTabla(miprov);
}//GEN-LAST:event_jButtonBuscarConActionPerformed

private void jComboBoxRazonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxRazonActionPerformed
limpiarCampos();
}//GEN-LAST:event_jComboBoxRazonActionPerformed

private void jButtonSeleccionarPedidoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSeleccionarPedidoActionPerformed

    int cantfilas = jTablePedidosPendientes.getModel().getRowCount();
    
    boolean seleccionado = false;
    for (int s = 0; s < cantfilas; s++) {
        seleccionado = Boolean.parseBoolean(jTablePedidosPendientes.getValueAt(s, 5).toString());
        if (seleccionado) {
//       
            Object idcontrato = jTablePedidosPendientes.getValueAt(s, 0);
            System.out.println("valor del id del contrato seleccionado " + idcontrato);
            Object iddetallecontrato = jTablePedidosPendientes.getValueAt(s, 4);
            System.out.println("valor del id del detalle seleccionado " + iddetallecontrato);

            Detallecontrato detallecont = new Detallecontrato(Integer.parseInt(iddetallecontrato.toString()));
            Contrato contrato = new Contrato();

            try {
                contrato = controladorcontrato.buscarContrato_X_idContrato(Integer.parseInt(idcontrato.toString()));
                System.out.println("encontro el contrato" + contrato.toString());
                listacontparam.add(contrato);
            } catch (Exception e) {
                System.out.println("No trajo el contrato que le pedi " + e);
            }
            try {
                detallecont = controladordetallecontr.buscarDetallecontrato_X_idDetallecontrato(Integer.parseInt(iddetallecontrato.toString()));
                System.out.println("encontro el detallecontrato" + detallecont.toString());
                listadetparam.add(detallecont);
            } catch (Exception e) {
                System.out.println("No trajo el detallecontrato que le pedi " + e);
            }
            System.out.println("********************************antes de cargar remito");
        }
    }
    
    System.out.println("antes de cargar remito");
    datosremito = new CargarRemito(miprov, listacontparam, listadetparam,usuarios);
    datosremito.setVisible(true);
    this.dispose();
}//GEN-LAST:event_jButtonSeleccionarPedidoActionPerformed

private void jTablePedidosPendientesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTablePedidosPendientesMouseClicked

}//GEN-LAST:event_jTablePedidosPendientesMouseClicked

private void jScrollPane1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jScrollPane1MouseClicked
}//GEN-LAST:event_jScrollPane1MouseClicked
//////////////////LISTAR///////////////
//Ojo qeu no verifica bien el telefono. da error cuando se ingresa una letra.
    //razon, nroPrevSocial,  apellido, nombre, nroIB, nroInv, pais,  provincia,localidad, telefono1, telefono2, fechaAlta, fechaBaja

//    private boolean verificar(String razon, String nroPrevSocial, String apellido, String nombre, String nroIB, String nroInv, String pais, String provincia, String localidad, String telefono1, String telefono2, String direccion) {
//
//        boolean ver = false;
//        if (razon.equals("") || nroPrevSocial.equals("") || apellido.equals("") || nombre.equals("") || nroIB.equals("") || nroInv.equals("") || pais.equals("") || provincia.equals("") || localidad.equals("") || telefono1.equals("") || telefono2.equals("") || direccion.equals("")) {
//            JOptionPane.showMessageDialog(this, "Por favor llene todos los campos!!!", "Error", JOptionPane.ERROR_MESSAGE);
//
//        } else if (!validador.getInstance().soloContieneLetrasYNumerosYEspacios(razon)) {
//            JOptionPane.showMessageDialog(this, "Apellido invalido!!!", "Error", JOptionPane.ERROR_MESSAGE);
//
//        } else if (!validador.getInstance().soloContieneLetrasYEspacios(apellido)) {
//            JOptionPane.showMessageDialog(this, "Nombre invalido!!!", "Error", JOptionPane.ERROR_MESSAGE);
//        } else if (!validador.getInstance().soloContieneLetrasYEspacios(nombre)) {
//            JOptionPane.showMessageDialog(this, "Nombre invalido!!!", "Error", JOptionPane.ERROR_MESSAGE);
//
//        } else if (!validador.getInstance().soloContieneNumerosYGuiones(nroIB)) {
//            JOptionPane.showMessageDialog(this, "Número de Ingresos Brutos invalido!!!", "Error", JOptionPane.ERROR_MESSAGE);
//
//        } else if (!validador.getInstance().soloContieneNumerosYGuiones(nroInv)) {
//            JOptionPane.showMessageDialog(this, "Número de Ingresos Brutos invalido!!!", "Error", JOptionPane.ERROR_MESSAGE);
//
//
//        } else if (!validador.getInstance().soloContieneLetrasYNumerosYEspacios(direccion)) {
//
//            JOptionPane.showMessageDialog(this, "Dirección invalido!!!", "Error", JOptionPane.ERROR_MESSAGE);
//
//        } else if (!validador.getInstance().esTelefonoValido(telefono1)) {
//            JOptionPane.showMessageDialog(this, "El valor ingresado para telefono1 es incorrecto!!!", "Error", JOptionPane.ERROR_MESSAGE);
//
//        } else if (!validador.getInstance().esTelefonoValido(telefono2)) {
//            JOptionPane.showMessageDialog(this, "El valor ingresado para telefono2 es incorrecto!!!", "Error", JOptionPane.ERROR_MESSAGE);
//        } else {
//            ver = true;
//        }
//        return ver;
//    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonBuscarCon;
    private javax.swing.JButton jButtonSalir;
    private javax.swing.JButton jButtonSeleccionarPedido;
    private javax.swing.JComboBox jComboBoxRazon;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabelApellidoCon;
    private javax.swing.JLabel jLabelDireccionCon;
    private javax.swing.JLabel jLabelDniCon;
    private javax.swing.JLabel jLabelTelCon;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTablePedidosPendientes;
    private javax.swing.JTextField jTextFieldApellido;
    private javax.swing.JTextField jTextFieldCuit;
    private javax.swing.JTextField jTextFieldDireccion;
    private javax.swing.JTextField jTextFieldNombre;
    private javax.swing.JTextField jTextFieldUsuario;
    // End of variables declaration//GEN-END:variables

//    private boolean verificar(String cuit) {
//        boolean ver = false;
//
//        if (cuit.equals("")) {
//            JOptionPane.showMessageDialog(this, "Por favor ingrese el cuil del operario!!!", "Error", JOptionPane.ERROR_MESSAGE);
//        } else if (!validador.getInstance().soloContieneNumerosYGuiones(cuit)) {
//            JOptionPane.showMessageDialog(this, "Cuil incorrecto: Ingrese números y guiones para cuil!!!", "Error", JOptionPane.ERROR_MESSAGE);
//        } else if (!repetidoProveedor(cuit) == true) {
//            JOptionPane.showMessageDialog(this, "Error el numero de cuil pertenece a otro operario !!!", "Error", JOptionPane.ERROR_MESSAGE);
//        } else {
//            ver = true;
//        }
//
//        return ver;
//    }
//
//    private boolean repetidoProveedor(String cuit) {
//        boolean estarepetido = false;
//        Proveedor operarc = new Proveedor();
//        try {
//            operarc = controladorprovee.buscarProveedorCuit(cuit);
//            estarepetido = false;
//            System.out.println("Encontró el cuil en un operario");
//        } catch (Exception e) {
//            System.out.println("NO está repetido el cuil en otro operario");
//            estarepetido = true;
//        }
//        return estarepetido;
//    }
}
